class Modulo < ActiveRecord::Base
  validates_uniqueness_of :nombre
  validates_presence_of :nombre
  default_scope :order => "modulos.modulo_id,modulos.orden"
  has_many :controlleres
  belongs_to :accion
  belongs_to :modulo
  has_many :submodulos, :class_name=>"Modulo",:foreign_key=>:modulo_id
  has_many :accesos

  named_scope :submodulos, :conditions=>["modulos.modulo_id IS NOT NULL"]
  named_scope :principales, :conditions=>{:modulo_id=>nil}
  named_scope :por_ids, lambda{|ids,action_name| action_name=="new" ? {:conditions=>{:id=>ids,:orden=>1..2}} : {:conditions=>{:id=>ids}}}

  MenuOpts={
    1=>{:link=>{:controller=>:usuarios},    :imagen => "usuarios",:controls => %w(usuarios hijos),:ignore_action=>["usuarios:micuenta"]},
    2=>{:link=>{:controller=>:sueldos},    :imagen => "no_icon", :controls => %w(sueldos recibos movimientos prestamos),:ignore_action=>["usuarios:micuenta"]},
    3=>{:link=>{:controller=>:evaluados},   :imagen => "no_icon", :controls => %w"evaluados incidentes planes_acciones"},
    4=>{:link=>{:controller=>:utilitarios},  :imagen => "no_icon", :controls  => %w"utilitarios modelos importaciones solicitudes solicitudes_documento logs"},
    5=>{:link=>{:controller=>:horarios},     :imagen => "no_icon", :controls => %w(horarios planes_horarios grupos_horarios marcaciones autorizaciones horas)},
    6=>{:link=>{},:controls => %w(configuraciones hechos tipos_cursos tipos_documentos tipos_contratos plantillas carpetas tipos_reconocimientos idiomas vestimentas tipos_examenes motivos_salidas competencias feriados franjas vacaciones_antiguedades empresas perfiles bancos sucursales tipos_movimientos predefinidos procesos areas cargos niveles categorias parametros hobbies talentos evaluaciones)}
  }
  def nombref
    self.nombre.underscore.gsub(' ','_').gsub('á','a').gsub('é','e').gsub('í','i').gsub('ó','o').gsub('ú','u').gsub('ñ','nh')
  end

  def self.get_submodulos(nombre_controller,usuario)
    return [] if usuario.nil?
    c=Controller.find_by_nombre(nombre_controller)
    return [] if c.nil?
    modulos =  c.modulo.submodulos.por_ids(usuario.modulo_ids,nil)
    modulos
  end
end
